"""
selenium 结合 webdriver 可以驱动浏览器 , 完成 web自动化测试工作 .

打开浏览器之前需要提前搭建好环境:

    1. Chrome 浏览器 :
        最好不要是最新版 , 很多时候最新版的 Chrome 浏览器对应的 webdriver 驱动需要去外网下载 ,
        常用的国内源 :
            阿里 https://developer.aliyun.com/mirror/ ,
            华为 https://mirrors.huaweicloud.com/home ,
            淘宝 https://npmmirror.com/
        和外网官网总是差一些版本 , 经常没有最新版本的 webdriver 驱动程序
        如果 Chrome 浏览器是自动更新的 , 则可能需要前往外网下载最新版的 chromedriver.exe .

    2. webdriver 驱动程序 :
        webdriver 用来驱动浏览器 , 需要下载对应浏览器的 webdriver 驱动程序 , Chrome 浏览器 , 就下载 ChromeDriver .
        下载浏览器对应的 webdriver , Edge 浏览器下载 msedgedriver.exe , 重命名为: MicrosoftWebDriver.exe , 并配置环境变量 .
        注意:
            浏览器驱动程序的版本需要和浏览器版本保持一致 .
            驱动程序 ( webdriver ) 需要配置环境变量 , 一般不单独配置环境变量, 而是放在浏览器程序目录或者 Python 安装目录 .

    3. selenium:
        pip install selenium

    4. 使用 selenium 操作浏览器:
    ----> 1.
        from selenium.webdriver import Chrome
        driver = Chrome()
        driver.get('http://www.baidu.com')
        driver.close()
    ----> 2.
        使用 webdriver_manager 自动下载 webdriver 并打开浏览器:
            from selenium.webdriver import Chrome
            from webdriver_manager.chrome import ChromeDriverManager
            driver = Chrome(ChromeDriverManager().install())
            driver.get('http://www.baidu.com')
            driver.close()
    ----> 3.
        当然 , webdriver 驱动版本不对应时 , 会抛异常 , 捕获异常 , 使用代码下载 webdriver 驱动程序也是可以的 .
            from time import sleep
            from selenium.common.exceptions import WebDriverException, SessionNotCreatedException
            from selenium import webdriver
            def download_matched_chromedriver():
                # 获取 Chrome 版本 , 下载对应版本的 chromedriver.exe , 并配置环境变量
                print('下载并配置成功.')
                return 'driver'
            try:
                driver = webdriver.Chrome()
            except SessionNotCreatedException:
                driver = download_matched_chromedriver()
            except WebDriverException as e:
                print('未找到 chromedriver.exe 驱动程序')
                raise e
            driver.get('http://www.baidu.com')
            sleep(2)
            driver.close()
"""

# 手动安装好了 chromedriver.exe 并配置好了环境变量:
# """
from time import sleep
from selenium import webdriver

driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
sleep(2)
driver.close()
# """


# 使用 webdriver_manager 来下载 chromedriver:

"""
from time import sleep
from selenium import webdriver
from webdriver_manager import chrome

driver = webdriver.Chrome(chrome.ChromeDriverManager().install())
driver.get('http://www.baidu.com')
sleep(2)
driver.close()
"""
